package pos.dominio;

public class Carta{

	//Nombre de la Carta
	/** @uml.property  name="nombre" */
	private String nombre;
	/** Getter of the property <tt>nombre</tt> * @return  Returns the nombre. * @uml.property  name="nombre" */
	public String getNombre(){
		return nombre;
	}
	/** Setter of the property <tt>nombre</tt> * @param nombre  The nombre to set. * @uml.property  name="nombre" */
	public void setNombre(String nombre){
		this.nombre = nombre;
	}

	//Cantidad de instancias que posee la Carta
	/** @uml.property  name="cantidad" */
	private Integer cantidad;
	/** Getter of the property <tt>cantidad</tt> * @return  Returns the cantidad. * @uml.property  name="cantidad" */
	public Integer getCantidad(){
		return cantidad;
	}
	/** Setter of the property <tt>cantidad</tt> * @param cantidad  The cantidad to set. * @uml.property  name="cantidad" */
	public void setCantidad(Integer cantidad){
		this.cantidad = cantidad;
	}

	// Constructores
	public Carta(String nombre, Integer cantidad){
		this.nombre = nombre;
		this.cantidad = cantidad;
	}

	//La igualdad se establece por el nombre de la Carta
	@Override
	public int hashCode(){
		final int prime = 31;
		int result = 1;
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj){
		if(this == obj)
			return true;
		if(obj == null)
			return false;
		if(getClass() != obj.getClass())
			return false;
		Carta other = (Carta) obj;
		if(nombre == null){
			if(other.nombre != null)
				return false;
		}else if(!nombre.equals(other.nombre))
			return false;
		
		return true;
	}
	@Override
	public String toString(){
		return "Carta: " + this.getNombre();
	}
	@Override
	public Carta clone(){
		Carta copia = null;
		try{
			copia = (Carta)super.clone();
		}catch(CloneNotSupportedException e){
			System.out.println(" no se puede duplicar");
		}
		return copia;
	}
	public int compareTo(Carta obj){
		return this.nombre.compareTo(obj.getNombre());
	}
	
}